适用范围
TalkingData App Analytics Html5 SDK适用于FireFox 3.0、Opera10.5、Chrome 4.0、Safari 4.0及更高版本。 如果使用微信浏览器、微博浏览器,UC浏览器,请务必在集成后进行真机测试。
集成准备-创建应用并获取App ID
App ID是TalkingData分析平台标识一款独立应用/游戏的唯一标识,集成SDK前需要在TalkingData报表中创建应用/游戏并获取相应的App ID。
步骤:
- 注册并登录https://www.talkingdata.com/,选择App Analytics产品线 ;
- 创建应用并获取App ID。如果已创建了应用,请从“应用管理->基本信息”中查看App ID。
集成准备-统计标准说明
基础统计指标定义:
- 新增用户:HTML5中“用户”指一个浏览器用户,或应用内的WebView用户。 我们会保证同一个浏览器的用户唯一性,即使清除浏览器缓存,仍可保持较高稳定性,跨浏览器使用会记为多个用户。
- 用户的一次使用:指用户从打开HTML5界面至离开界面的完整过程。
- 自定义事件:指用户在HTML5中进行了特定的操作或达成了特定的条件,例如用户点击了某按钮,完成某步骤等。 自定义事件用于收集任意您期望跟踪的数据。
快速集成-导入Web SDK
在工程的全部页面内加入:
//对于普通的HTTP连接网站,使用的调用地址:
<script src="http://sdk.talkingdata.com/app/h5/v1?appid=APPID&vn=应用版本名称&vc=应用版本id"></script>
//如果您的网站使用HTTPS连接,请使用以下地址:
<script src="https://jic.talkingdata.com/app/h5/v1?appid=APPID&vn=应用版本名称&vc=应用版本id"></script>
注意事项:
- 全部页面中都需要引入SDK,建议在head位置内添加,可获得最完整数据。
- 如果您使用普通的HTTP 协议,在数据传输的过程中存在被劫持(包括不限于:JS代码注入等)的可能性,造成您的H5页面中出现诸如:未知的广告或者原网页重定向等现象。为了降低此类事件发生概率,TalkingData 建议您使用HTTPS协议,以确保数据传输过程的完整性、安全性。
示例如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>H5 SDK</title>
<link rel="stylesheet" type="text/css" href="css/style.css" />
<script src="http://sdk.talkingdata.com/app/h5/v1?appid=1241132132&vn=name&vc=1.0.1"></script>
</head>
<body></body>
</html>
说明:
- App ID获取方式参见“集成准备-创建应用并获取App ID”。
- vn,即versionName,代表应用版本名称,必填。
例:正式版v1.0 此项用于区分您的应用版本,填写后可在报表中过滤版本来查阅数据。支持字符串类型,限32个字符以内,不可以包含任何特殊转义字符。未填写时版本将记为“未 知”; - vc,即versionCode,代表应用版本号id,选填。 例:1.23.5421,如一个发布的版本会维护很多build,可以填写此项来作为区分。
基础-基础统计
导入SDK后,则完成了基础集成,系统将自动跟踪用户进入和离开应用的行为,准确统计新增、启动、活跃、留存等指标。
注意事项:
请务必保证已正确导入SDK并已按实际情况修改App ID等相应参数。
接口说明
跟踪每个分发渠道或推广活动给HTML5应用带来的流量,可以使用渠道网址构建的方式来实现。
说明:
- 如果您的地址中已经有了“?”参数,不需写多个问号,只需要在我们的参数前增加“&”符号;用户从渠道地址跳转进应用后,当次完整的访问数据都归给对应的渠道,如:
?XXXXX=XXXX(其他参数)& td_channelid=channelname
- “channelname”最多包含64个字符,支持英文、数字、下划线,但不能包含空格或其他的转义字符。
- 请将td_channelid这个参数加在“?”之后,“#”之前。
接口定义
在想要推广的网址中追加以下参数后缀,即可追踪渠道来源:
?td_channelid=channelname
参数说明
参数 | 类型 | 描述 |
---|---|---|
channelname | String | 渠道ID,最多包含64个字符,支持英文、数字、下划线,但不能包含空格或其他的转义字符 |
示例代码
例如:您应用的入口地址是http: //abc.acbapp.com/abc.html,分别在名称为app123的网站、名称为haoApp999的App、名称为niceApp微信公众号做推广, 只需要为他们提供以下三个不同的点击跳转地址,即可跟踪来源量。
http://abc.acbapp.com/abc.html?td_channelid=app123
http://abc.acbapp.com/abc.html?td_channelid=haoApp999
http://abc.acbapp.com/abc.html?td_channelid=niceApp
http://abc.acbapp.com/abc.html?params1=aaa&td_channelid=app123#123
高级-页面访问
导入SDK后,则完成了页面访问的统计。 对于采用单页面技术实现的H5应用,由于无法准确监测到页面间跳转而导致页面统计数据偏少,所以在这种情况下建议采用自定义事件方式对每个页面进行追踪。
高级-自定义事件
接口说明
自定义事件用于统计任何您期望去跟踪的行为数据,如:点击某功能按钮、填写某个输入框、触发了某个广告等;同时,自定义事件还支持添加一些描述性的属性参数(可选),用于对事件发生时的状况做详尽分析。
接口定义
为了让您使用上最简单,事件不需要在平台预先定义,可直接调用;我们也准备了不同使用深度的调用方法,根据需要来选用:
1.跟踪一个简单的行为事件。调用方法:
```javascript
TDAPP.onEvent(EventId);
```
2. 带有Label标签的事件。可理解Label是事件的子分类。 如多个不同行为属于同一类型,可以将EventID作为一类事件的目录名,用Label来区分每个行为事件。调用方法:
//以下方法已作废
TDAPP.onEvent (EventId, Label);
3.带参数的事件。 为事件添加详尽的描述信息,可以更有效的对事件触发的条件和场景做分析,每一次行为都可以添加多种参数来进行描述,调用方法:
```javascript
TDAPP.onEvent (EventId, Label, MapKv);
```
注意:Label传空串即可,即“”。
参数说明
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
EventId | string | 是 | 自定义事件ID 64个字符以内的中文、英文、数字、下划线,不要加空格或其他的转义字符 |
Label | string | 否 | 64个字符以内的中文、英文、数字、下划线,不要加空格或其他的转义字符 |
MapKv | json | 否 | 事件的参数信息,描绘发生事件时的属性和场景 Object键值对中的value如果是number类型,服务器会做sum/avg之类的处理;如果是其他类型,按string对待做次数统计 |
示例代码
1.使用自定义事件记录广告点击行为。调用如下:
TDAPP.onEvent("点击Banner广告");
2.如果广告在多处存在,或广告以轮播方式呈现,可使用Label标签标记不同位置。调用如下:
//Label参数已作废
TDAPP.onEvent("点击广告", "Banner广告位第一屏");
TDAPP.onEvent("点击广告", "详情页侧栏上");
3.如果还想了解点击广告时候的属性和场景,可应用参数事件。调用如下:
var kv = {"广告内容": "电商双12大促", "促销品价格": "100~400RMB", "广告素材类型": "图片"};
TDAPP.onEvent("点击广告", "", kv);
高级-账户分析
注册
接口说明
提供用户注册事件,用于账户分析功能。
接口定义
TDAPP.register(opt);
参数说明
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
profileId | string | 是 | 账户的唯一标识,用于区分不同用户 |
profileType | number | 是 | 传入账户的类型。支持匿名、自有账户显性注册、第三方账户及其他预留的自定义账户类型,共4大类,具体如下: 0:ANONYMOUS,匿名账号; 1:REGISTERED,自有帐户显性注册; 2:SINA_WEIBO,新浪微博账号; 3:QQ,QQ账号; 4:TENCENT_WEIBO,腾讯微博账号; 5:ND91,91平台账号; 6:WEIXIN,微信账号 11:Type1 12:Type2; 13:Type3; …… 20:Type10 |
name | string | 否 | 账户名称 |
gender | number | 否 | 性别,0:未知;1:男性;2:女性 |
age | number | 否 | 年龄,限数字 |
property1 ~property10 | number/string | 否 | property1到property10为扩展属性 |
示例代码
var account ={
profileId:'testID@talkingdata',
profileType:1,
name:"张三",
gender:1,
age:22,
property1:"beijing"
}
TDAPP.register(account);
登录
接口说明
提供用户登录事件接口,用于账户分析功能。
接口定义
TDAPP.login(opt);
参数说明
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
profileId | string | 是 | 账户的唯一标识,用于区分不同用户 |
profileType | number | 是 | 传入账户的类型。支持匿名、自有账户显性注册、第三方账户及其他预留的自定义账户类型,共4大类,具体如下: 0:ANONYMOUS,匿名账号; 1:REGISTERED,自有帐户显性注册; 2:SINA_WEIBO,新浪微博账号; 3:QQ,QQ账号; 4:TENCENT_WEIBO,腾讯微博账号; 5:ND91,91平台账号; 6:WEIXIN,微信账号 11:Type1 12:Type2; 13:Type3; …… 20:Type10 |
name | string | 否 | 账户名称 |
gender | number | 否 | 性别,0:未知;1:男性;2:女性 |
age | number | 否 | 年龄,限数字 |
property1 ~property10 | number/string | 否 | property1到property10为扩展属性 |
示例代码
var account ={
profileId:'testID@talkingdata',
profileType:1,
name:"张三",
gender:1,
age:22,
property3:"beijing"
}
TDAPP.login(account);
更新账户信息
接口说明
更新已经注册或者登录过的账户信息。
接口定义
TDAPP.updateProfile(opt);
参数说明
所有参数均可选填,填写的字段会被更新,未填写的字段不会被更新。
参数 | 类型 | 是否必须 | 描述 |
---|---|---|---|
profileType | number | 否 | 传入账户的类型。支持匿名、自有账户显性注册、第三方账户及其他预留的自定义账户类型,共4大类,具体如下: 0:ANONYMOUS,匿名账号; 1:REGISTERED,自有帐户显性注册; 2:SINA_WEIBO,新浪微博账号; 3:QQ,QQ账号; 4:TENCENT_WEIBO,腾讯微博账号; 5:ND91,91平台账号; 6:WEIXIN,微信账号 11:Type1 12:Type2; 13:Type3; …… 20:Type10 |
name | string | 否 | 账户名称 |
gender | number | 否 | 性别,0:未知;1:男性;2:女性 |
age | number | 否 | 年龄,限数字 |
property1 ~property10 | number/string | 否 | property1到property10为扩展属性 |
示例代码
var account ={
profileType:1,
name:"张三",
gender:1,
age:22,
property3:"上海"
}
TDAPP.updateProfile(account);
高级-下单分析
接口说明
用于记录用户的下单情况。
接口定义
TDAPP.onPlaceOrder(obj);
参数说明
其中obj为参数对象,其内部key定义如下:
参数 | 类型 | 是否必须 | 说明 | 备注 |
---|---|---|---|---|
orderId | string | 是 | 订单id | |
amount | number | 是 | 订单金额 | 单位为货币类型的最小单位。即如果是人民币,则单位为分 |
currencyType | string | 是 | 货币类型,如CNY | 限定于3位长度的字符串。请使用国际标准组织 ISO4217 中规范的 3 位字母代码标记货币类型。例:人民币 CNY;美元 USD;欧元 EUR;如果您使用其他自定义等价物作为现金,亦可使用 ISO4217 中没有的 3 位字母组合传入货币类型,我们会在报表页面中提供汇率设定功能 |
示例代码
var order={
orderId:'order00001',
amount:2000,
currencyType:'CNY'
};
TDAPP.onPlaceOrder(order);
高级-支付分析
接口说明
用于记录用户订单支付情况,建议在用户完成支付之后调用。
接口定义
TDAPP.onOrderPaySucc(obj);
参数说明
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
orderId | string | 是 | 订单id |
amount | number | 是 | 订单金额 |
currencyType | string | 是 | 货币类型,如CNY |
paymentType | string | 否 | 支付类型,如支付宝(alipay) |
示例代码
var order={
orderId:'order00001',
amount:2000,
currencyType:'CNY',
paymentType:'alipay'
};
TDAPP.onOrderPaySucc(order);
高级-取消订单
接口说明
记录用户取消订单的情况。
接口定义
TDAPP.onCancelOrder(obj);
参数说明
参数 | 类型 | 是否必须 | 说明 |
---|---|---|---|
orderId | string | 是 | 订单id |
amount | number | 是 | 订单金额 |
currencyType | string | 是 | 货币类型,如CNY |
示例代码
var order={
orderId:'order00001',
amount:2000,
currencyType:'CNY'
};
TDAPP.onCancelOrder(order);
暂未支持的功能
目前无法获取联网方式、运营商、机型信息,在对应报表页中无法查阅数据。